package cn.com.anypay.manager.service;

import cn.com.anysdk.ocr.exception.OcrException;
import cn.com.anysdk.ocr.model.OcrResult;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

/**
 * OCR服务接口
 */
public interface OcrService {

    /**
     * 切换OCR服务商
     *
     * @param config 配置参数
     * @return 切换结果
     */
    String switchProvider(Map<String, Object> config);

    /**
     * 获取当前OCR服务商配置
     *
     * @return 配置信息Map
     * @throws OcrException 未初始化时抛出
     */
    Map getCurrentConfig() throws OcrException;

    /**
     * 根据提供商类型获取配置
     *
     * @param provider 提供商类型
     * @return 配置信息Map
     * @throws OcrException 获取失败时抛出
     */
    Map<String, Object> getConfigByProvider(String provider) throws OcrException;

    /**
     * 识别图片文件中的文字
     *
     * @param file 图片文件
     * @return 识别结果
     */
    OcrResult recognize(MultipartFile file, String serviceType) throws OcrException;

}
